package negocio;

import java.util.Vector;

import persistencia.TarifaDao;

public class TarifaResidencialSinSubsidio extends Tarifa{
	
	
	private float contribucionesMunicipales;
	private String descripcionContribuciones;
	
	
	
	public float getContribucionesMunicipales() {
		return contribucionesMunicipales;
	}

	public void setContribucionesMunicipales(float contribucionesMunicipales) {
		this.contribucionesMunicipales = contribucionesMunicipales;
	}

	public String getDescripcionContribuciones() {
		return descripcionContribuciones;
	}

	public void setDescripcionContribuciones(String descripcionContribuciones) {
		this.descripcionContribuciones = descripcionContribuciones;
	}

	public TarifaResidencialSinSubsidio(float contribucionesMunicipales,
			String descripcionContribuciones) {
		super();
		this.contribucionesMunicipales = contribucionesMunicipales;
		this.descripcionContribuciones = descripcionContribuciones;
	}

	public TarifaResidencialSinSubsidio() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	
	public void guardarTarifaRSinSubsidio(){
		TarifaDao.getInstancia().agregarTarifaResidencialSinSubsidio(this);
	}
	

	@Override
	public float CalcularTarifaBasica(float Rmedicion) {
	return	this.getMetroCubico()*Rmedicion;

	}
	
	

	@Override
	public float AplicarIva(float tarifaba) {
		return tarifaba*this.getIva();

	}

	public float AplicarImpuesto(float iva) {
		return iva*this.getContribucionesMunicipales();
		
	}

	@Override
	public Factura realizarLiquidacion(float Rmedicion,int id) {
		Factura f=new Factura();
		f.setId_usuario(id);
		
		float tarifaBasica= CalcularTarifaBasica(Rmedicion);
		float aplicarIva=tarifaBasica+AplicarImpuesto(tarifaBasica);
		float subtotalImpuesto=aplicarIva+AplicarImpuesto(aplicarIva);
		
		
		
		ItemFactura i1=new ItemFactura("Consumo", tarifaBasica);
		ItemFactura i2=new ItemFactura("Iva Responsable Inscripto",AplicarIva(tarifaBasica));
		ItemFactura i3=new ItemFactura("Ingresos Brutos",AplicarImpuesto(aplicarIva));
		ItemFactura i4=new ItemFactura("Total a pagar", subtotalImpuesto);
		
		
		f.agregarItem(i1);
		f.agregarItem(i2);
		f.agregarItem(i3);
		f.agregarItem(i4);

		
		f.setTotal(f.calcularTotal());
		
		f.guardarFactura();
		return f;
		
	}
	public boolean aplicaSubsidio(float Rmedicion, float tope){
		boolean sub=false;
		float tarifaBasica= CalcularTarifaBasica(Rmedicion);
		float aplicarIva=tarifaBasica+AplicarImpuesto(tarifaBasica);
		float subtotalImpuesto=aplicarIva+AplicarImpuesto(aplicarIva);
		
		
		if(subtotalImpuesto<tope){
			sub=true;
		}
		return sub;
	}

/*	@Override
	public Vector<ItemFactura> generarFactura() {
		ItemFactura item1=new ItemFactura("Consumo", CalcularTarifaBasica(Rmedicion));
		
		super.generarFactura();
	}
*/
}
